package com.example.util;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 
 * @ClassName: MapUtils.java
 * @Description:
 * @author: xiaozhijun
 * @Date: 2017年9月16日 下午4:11:56
 */
public class MapUtils {

	/**
	 * 对象转Map
	 * 
	 * @author xiaozhijun
	 * @Date: 2017年9月16日 下午4:12:22
	 * @param obj
	 * @return
	 */
	public final static Map convertObjToMap(Object obj) {
		Map<String, Object> reMap = new HashMap<String, Object>();
		if (obj == null)
			return null;
		Field[] fields = obj.getClass().getDeclaredFields();
		try {
			for (int i = 0; i < fields.length; i++) {
				try {
					Field f = obj.getClass().getDeclaredField(fields[i].getName());
					f.setAccessible(true);
					Object o = f.get(obj);
					reMap.put(fields[i].getName(), o);
				} catch (NoSuchFieldException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IllegalArgumentException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IllegalAccessException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		} catch (SecurityException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return reMap;
	}
	
	/**
	 * 对象转Map
	 * 
	 * @author xiaozhijun
	 * @Date: 2017年9月16日 下午4:12:22
	 * @param obj
	 * @return
	 */
	public final static List<Map> convertObjToMaps(List objs) {
		List<Map> resultMap = new ArrayList();
		for(Object obj: objs){
			resultMap.add(convertObjToMap(obj));
		}
		return resultMap;
	}
}
